query processing in distributed database